package model

import (
	"time"

	"gorm.io/gorm"
)

// AccessToken 文件访问令牌模型
type AccessToken struct {
	ID        uint           `gorm:"primarykey" json:"id"`
	Token     string         `gorm:"size:100;uniqueIndex;not null" json:"token"` // 访问令牌
	FileID    uint           `gorm:"index;not null" json:"file_id"`              // 关联文件ID
	ExpiresAt time.Time      `json:"expires_at"`                                 // 过期时间
	CreatedBy uint           `gorm:"index" json:"created_by"`                    // 创建者用户ID
	CreatedAt time.Time      `json:"created_at"`
	UpdatedAt time.Time      `json:"updated_at"`
	DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
	UserID    int
	Remark    string `gorm:"size:500" json:"remark"` // 文件备注

	// 关联关系
	File *File `gorm:"foreignKey:FileID" json:"file,omitempty"`
	User *User `gorm:"foreignKey:CreatedBy" json:"user,omitempty"`
}
